package com.wyh.mapper.feemanagementmapper;

import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.pagehelper.Page;
import com.wyh.domain.dto.feemanagementdto.*;
import com.wyh.domain.po.feemanagementpo.Billdetailes;
import com.wyh.domain.po.feemanagementpo.InvoiceHeaderes;
import com.wyh.domain.po.feemanagementpo.Invoicerecordes;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

@Mapper
public interface BillsMapper extends BaseMapper<Billdetailes> {

    Page<BillDTO> pageQuery(@Param(value = "bill") BillPageQueryDTO billPageQueryDTO, @Param("account") String account);

    List<BillDetailDTO> getBillDetailById(Integer id);

    Page<BillNoticeDTO> pageTwoQuery(@Param(value = "bill") BillPageQueryDTO billPageQueryDTO,@Param("account") String account);

    Page<BillTpDTO> pageTpQuery(@Param(value = "bill") BillPageTpQueryDTO billPageTpQueryDTO,@Param("account") String account);

    List<InvoiceDTO> getBillDetailByIds(Integer id);

    void returnBill(ReturnBillDTO returnBillDTO);

    List<BillDetailbDTO> getBillDetailByIdb(Integer id);

    List<PdfDTO> gettemplatetxt(Integer[] ids);

    String[] getEmails(Integer[] ids);

    int getSendMehod();

    String[] getPhones(Integer[] ids);

    void changeNotificationstatus(Integer[] ids);

    void invoicing(InvoicingReDTO invoicingReDTO);

    InvoiceHeaderes getHeaderes(@Param("id") Integer id);

    List<Integer> getfeeclassificationById(Integer feeclassificationid);

    List<String> getPD(String account);

    Integer getInvoiceName(String name);

    String getSalesside(String account);

    BigDecimal getAccount(Integer id);

    List<BillDTO> getAccounts(Integer id);

    List<ExpenseDetails> getExpenseDetails(Integer id);

    String getNoticenumber(Integer id);

    Date getAccounttime(Integer id);

    String getRemarks();

    ReceiptDTO getReceipt(Integer id, String account);
}
